//
//  ZZTongClientEngine.h
//  V-POS
//
//  Created by handpay on 12-10-26.
//  Copyright (c) 2012年 handpay. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

#import "HPCFDelegate.h"
#include "luaEngine.h"
#import "ZZTongNetEngine.h"
#import "ZZTongUIEngine.h"
#import "AccountInfoData.h"
//#import "HPSwiperService.h" // mcm
//#import "CSNValidator.h" // mcm
//#import "POSProcess.h" // mcm

//#define ZZT_FOR_TEST 1

//#define ZZT_FOR_ADDRESS 1

typedef enum{
    FunctionTypeCollectMoney = 0,       //收款
    FunctionTypeFastTransRecord,        //快速转账流水
    FunctionTypeAccount,                //账户
    FunctionTypeFastTransfer,           //快速转账
    FunctionTypeCollectMoneyRecord,     //收款流水
    FunctionTypeBalance,                //余额查询
    FunctionTypeBankCardManage,         //收款卡管理
    FunctionTypeHelp,                   //帮助中心
    FunctionTypeAccountInfo,            //基本信息管理
    FunctionTypeAmountLimit,            //收款限额
    FunctionTypeWithdraw
} FunctionType;

typedef enum{
    VerChannelHx,
    VerChannelLikePay,
    VerChannelFFTong,
    VerChannelFengMang,
    VerChannelQianBao,
    VerChannelLeFuBao,
    VerChannelLangNai,
    VerChannelZCJR,
    VerChannelZXF,
    VerChannelHeXin,
    VerChannelXFB,
    VerChannelYH,
    VerChannelSSES,
} VerChannel;


#define ZZT_CLIENG      [ZZTongClientEngine sharedInstance]
#define ZZT_UIENG      ZZT_CLIENG.uiEngine

@interface ZZTongClientEngine : NSObject <HPAppDelegate, NetCallBackDelegate>{
    ZZTongNetEngine* netEngine;
    ZZTongUIEngine* uiEngine;
}

+ (ZZTongClientEngine *) sharedInstance;
+ (void)releaseInstance;

@property(nonatomic, retain)ZZTongNetEngine* netEngine;
@property(nonatomic, retain)ZZTongUIEngine* uiEngine;
@property(nonatomic, retain)AccountInfoData* accountInfo;

- (void)clearAccountInfo;

- (void)doVerifyVersion;
- (void)doAsyncFunction:(id)target func:(SEL)func arg:(NSObject*)obj;

- (BOOL)checkAccountStatus:(FunctionType)type;

- (void)doSendVerifyCode:(NSDictionary*)params withButton:(UIButton*)button;
- (void)doSendGetBanksReq;
- (void)resetVerifyBtnState;

- (VerifyVerionStatus)getVerifyVersionStatus;

- (void)submitQuality;

@end
